<!doctype html>
<html lang="ru" data-bs-theme="dark">

<head>
    <!-- 2024-05-11 14:13:13 -->
        <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <title>Git - gitformat index</title>
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.3/css/bootstrap.min.css" integrity="sha512-jnSuA4Ss2PkkikSOLtYs8BlYIeeIK1h99ty4YfvRPAlzr377vr3CXDb7sb7eEEBYjDtcYj+AjBH3FLv5uSJuXg==" crossorigin="anonymous" referrerpolicy="no-referrer" />
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-icons/1.11.3/font/bootstrap-icons.min.css" integrity="sha512-dPXYcDub/aeb08c63jRq/k6GaKccl256JQy/AnOq7CAnEZ9FzSL9wSbcZkMp4R26vBsMLFYH4kQ67/bbV8XaCQ==" crossorigin="anonymous" referrerpolicy="no-referrer" />
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/github-dark.min.css" integrity="sha512-rO+olRTkcf304DQBxSWxln8JXCzTHlKnIdnMUwYvQa9/Jd4cQaNkItIUj6Z4nvW1dqK0SKXLbn9h4KwZTNtAyw==" crossorigin="anonymous" referrerpolicy="no-referrer" />
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/flag-icon-css/7.1.0/css/flag-icons.min.css" integrity="sha512-bZBu2H0+FGFz/stDN/L0k8J0G8qVsAL0ht1qg5kTwtAheiXwiRKyCq1frwfbSFSJN3jooR5kauE0YjtPzhZtJQ==" crossorigin="anonymous" referrerpolicy="no-referrer" />
    <link href="../../../runebook.css" rel="stylesheet" type="text/css">
    <meta name="x-github" content="https://github.com/runebookdev/runebook">
            <meta name="x-i18n-doc" content="git">
        <script>
        function i18n(element) {
            // NOP
        }
    </script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/js-cookie/3.0.5/js.cookie.js" integrity="sha512-F/dia2jKME12jwqiYDayeD+Rr/8jTWUD2wfbuJB0bzSwenSEnXsn4qQ/wVyXUCix5bmCAj8xJdtFr2OqUtjLAw==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js" integrity="sha512-v2CJ7UaYy4JwqLDIrZUI/4hqeoQieOmAZNXBeQyjo21dadnwR+8ZaIJVT8EE2iyI61OV8e6M8PP2/4hpQINQ/g==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.3/js/bootstrap.bundle.min.js" integrity="sha512-7Pi/otdlbbCR+LnW+F7PwFcSDJOuUJB3OxtEHbg4vSMvzvJjde4Po1v4BR9Gdc9aXNUNFVUY+SK51wWT8WF0Gg==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/7.8.1/rxjs.umd.min.js" integrity="sha512-D9LDs8YUUVa4V9Gl4Zb+xqRAc7RCzooR3+zzebgK2RMu/KU+dh90pbjEEMzPiSyRSGbSp9j1pZnrO4joGa5WEg==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/mark.js/8.11.1/jquery.mark.min.js" integrity="sha512-mhbv5DqBMgrWL+32MmsDOt/OAvqr/cHimk6B8y/bx/xS88MVkYGPiVv2ixKVrkywF2qHplNRUvFsAHUdxZ3Krg==" crossorigin="anonymous"></script>
    <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-6424571640879890" crossorigin="anonymous"></script>    <script async src="https://www.googletagmanager.com/gtag/js?id=G-3G5BZ1QEDP"></script>
<script>
    window.dataLayer = window.dataLayer || [];

    function gtag() {
        dataLayer.push(arguments);
    }

    gtag('js', new Date());
    gtag('config', 'G-3G5BZ1QEDP');
</script>    <script>
(function(c, l, a, r, i, t, y) {
    c[a] = c[a] || function() {
        (c[a].q = c[a].q || []).push(arguments)
    };
    t = l.createElement(r);
    t.async = 1;
    t.src = "https://www.clarity.ms/tag/" + i + "?ref=bwt";
    y = l.getElementsByTagName(r)[0];
    y.parentNode.insertBefore(t, y);
})(window, document, "clarity", "script", "jto2hd94r9");
</script>    <script src="../../../theme.js"></script>
</head>

<body>
    <header class="bg-black">
        <div class="container">
            <div class="row">
                <div class="col">
                    <nav class="navbar navbar-expand-lg navbar-dark">
                        <a class="navbar-brand fw-bold" href="https://runebook.dev/ru">
                            <img alt="Runebook.dev" class="d-inline-block align-top mr-1" src="../../../assets/runebook_logo.webp" width="24" height="24">
                            Runebook.dev
                        </a>
                        <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
                            <span class="navbar-toggler-icon"></span>
                        </button>
                        <div class="collapse navbar-collapse" id="navbarSupportedContent">
                            <ul class="navbar-nav me-auto mb-2 mb-lg-0">
                                <li class="nav-item">
                                    <a class="nav-link" href="https://runebook.dev/ru#docs">Documentation</a>
                                </li>
                                <li class="nav-item">
                                    <a class="nav-link" href="https://runebook.dev/contributors">Contributors</a>
                                </li>
                                <li class="nav-item">
                                    <a class="nav-link" href="https://github.com/runebookdev/runebook/issues">GitHub</a>
                                </li>
                            </ul>
                                                                                                <button class="btn btn-success ms-2" id="showPopupButton">
                                        <i class="bi bi-translate"></i>
                                        Show English
                                    </button>
                                                                                        <div class="form-check form-switch ms-3">
                                <label class="text-light">
                                    <input class="form-check-input" type="checkbox" role="switch" id="theme-switch" checked>
                                    <i class="bi bi-moon-stars-fill"></i>
                                </label>
                            </div>
                        </div>
                    </nav>
                </div>
            </div>
        </div>
    </header>

    <!--sse-->
    <div class="container">
    <div class="row">
        <div class="col">
            <nav aria-label="breadcrumb" class="mt-2">
                <ol class="breadcrumb mb-1">
                    <li class="breadcrumb-item">
                        <a href="https://runebook.dev/ru#docs">
                            <span class="fi fi-ru"></span>                            Русский                        </a>
                    </li>
                    <li class="breadcrumb-item">
                        <a href="-index-.html">
                            Git                            2.43                        </a>
                    </li>
                                            <li class="breadcrumb-item">
                            <a href="-index-.html#Miscellaneous">
                                Miscellaneous                            </a>
                        </li>
                                    </ol>
            </nav>
        </div>
    </div>
    <br>

    <div class="row">
        <div class="col-md-9">
            <main>
                <article>

                    
                    <h1 class="text-body-emphasis" ><span data-i18n="4b8c348cf750dae33caa1d6012387080f0ab23a34447a370dabd9e0708078bcf/bc" data-source="gitformat-index" onmousemove="i18n(this)">gitformat-index</span></h1> <h2 class="text-body-emphasis"  id="_name"><span data-i18n="dcd1d5223f73b3a965c07e3ff5dbee3eedcfedb806686a05b9b3868a2c3d6d50/3a" data-source="Name" onmousemove="i18n(this)">Name</span></h2> <div> <p><span data-i18n="5a28a466f2a79e3ef2a937ab3c311692a7e42f15f4753f45c19442ba4f13ccca/09" data-source="gitformat-index - Git index format" onmousemove="i18n(this)">gitformat-index &mdash; &fcy;&ocy;&rcy;&mcy;&acy;&tcy; &icy;&ncy;&dcy;&iecy;&kcy;&scy;&acy;  Git</span></p> </div> <h2 class="text-body-emphasis"  id="_synopsis"><span data-i18n="8eb3755381519d7f0479d75446e56e20084834c0460d7ec94926932372ea6c47/0d" data-source="Synopsis" onmousemove="i18n(this)">Synopsis</span></h2> <div> <div> <pre class="hljs language-bash"><span class="hljs-variable">$GIT_DIR</span>/index</pre> </div> </div> <h2 class="text-body-emphasis"  id="_description"><span data-i18n="526e0087cc3f254d9f86f6c7d8e23d954c4dfda2b312efc29194ae8a860106ba/d3" data-source="Description" onmousemove="i18n(this)">Description</span></h2> <div> <p><span data-i18n="a9a98b7aef9fd0416172e9805158705cf30d297a9ad19244a851e5795f675475/8b" data-source="Git index format" onmousemove="i18n(this)">&Icy;&ncy;&dcy;&iecy;&kcy;&scy;&ncy;&ycy;&jcy; &fcy;&ocy;&rcy;&mcy;&acy;&tcy;  Git</span></p> </div> <h2 class="text-body-emphasis"  id="_the_git_index_file_has_the_following_format"><span data-i18n="4693dbc604b23ba7d8c02f491fac46ae7f3b351b91f3dcef1ef9ea0f44bcfd9c/55" data-source="The git index file has the following format" onmousemove="i18n(this)">&Icy;&ncy;&dcy;&iecy;&kcy;&scy;&ncy;&ycy;&jcy; &fcy;&acy;&jcy;&lcy;  git  &icy;&mcy;&iecy;&iecy;&tcy; &scy;&lcy;&iecy;&dcy;&ucy;&yucy;&shchcy;&icy;&jcy; &fcy;&ocy;&rcy;&mcy;&acy;&tcy;.</span></h2> <div> <div> <div> <pre class="hljs language-sql"><span class="hljs-keyword">All</span> <span class="hljs-type">binary</span> numbers <span class="hljs-keyword">are</span> <span class="hljs-keyword">in</span> network byte order.
<span class="hljs-keyword">In</span> a repository <span class="hljs-keyword">using</span> the traditional SHA<span class="hljs-number">-1</span>, checksums <span class="hljs-keyword">and</span> object IDs
(object names) mentioned below <span class="hljs-keyword">are</span> <span class="hljs-keyword">all</span> computed <span class="hljs-keyword">using</span> SHA<span class="hljs-number">-1.</span>  Similarly,
<span class="hljs-keyword">in</span> SHA<span class="hljs-number">-256</span> repositories, these <span class="hljs-keyword">values</span> <span class="hljs-keyword">are</span> computed <span class="hljs-keyword">using</span> SHA<span class="hljs-number">-256.</span>
Version <span class="hljs-number">2</span> <span class="hljs-keyword">is</span> described here unless stated otherwise.</pre> </div> </div> <div> <ul> <li> <p><span data-i18n="a180ed9212cbd7348c1da36ecd9b3f2662f89dd8aa3630af5954318fbcdc1f35/54" data-source="A 12-byte header consisting of" onmousemove="i18n(this)">12-&bcy;&acy;&jcy;&tcy;&ocy;&vcy;&ycy;&jcy; &zcy;&acy;&gcy;&ocy;&lcy;&ocy;&vcy;&ocy;&kcy;, &scy;&ocy;&scy;&tcy;&ocy;&yacy;&shchcy;&icy;&jcy; &icy;&zcy;</span></p> <div> <div> <pre class="hljs language-csharp"><span class="hljs-number">4</span>-<span class="hljs-built_in">byte</span> signature:
  The signature <span class="hljs-keyword">is</span> { <span class="hljs-string">&apos;D&apos;</span>, <span class="hljs-string">&apos;I&apos;</span>, <span class="hljs-string">&apos;R&apos;</span>, <span class="hljs-string">&apos;C&apos;</span> } (stands <span class="hljs-keyword">for</span> <span class="hljs-string">&quot;dircache&quot;</span>)</pre> </div> </div> <div> <div> <pre class="hljs language-sql"><span class="hljs-number">4</span><span class="hljs-operator">-</span>byte version number:
  The <span class="hljs-keyword">current</span> supported versions <span class="hljs-keyword">are</span> <span class="hljs-number">2</span>, <span class="hljs-number">3</span> <span class="hljs-keyword">and</span> <span class="hljs-number">4.</span></pre> </div> </div> <div> <div> <pre class="hljs language-perl"><span class="hljs-number">32</span>-bit number of <span class="hljs-keyword">index</span> entries.</pre> </div> </div> </li> <li> <p><span data-i18n="9b1b87bd4d5e6833696017961037fc93abdeb356771ff7ff6aaa978d2d990944/a5" data-source="A number of sorted index entries (see below)." onmousemove="i18n(this)">&Kcy;&ocy;&lcy;&icy;&chcy;&iecy;&scy;&tcy;&vcy;&ocy; &ocy;&tcy;&scy;&ocy;&rcy;&tcy;&icy;&rcy;&ocy;&vcy;&acy;&ncy;&ncy;&ycy;&khcy; &zcy;&acy;&pcy;&icy;&scy;&iecy;&jcy; &icy;&ncy;&dcy;&iecy;&kcy;&scy;&acy; (&scy;&mcy;. &ncy;&icy;&zhcy;&iecy;).</span></p> </li> <li> <p><span data-i18n="fe3436af86b47d22f22d93da68119fcb749dbed0335b4dc99f254e02db236156/dc" data-source="Extensions" onmousemove="i18n(this)">Extensions</span></p> <div> <div> <pre class="hljs language-vbnet">Extensions are identified <span class="hljs-keyword">by</span> signature. <span class="hljs-keyword">Optional</span> extensions can
be ignored <span class="hljs-keyword">if</span> Git does <span class="hljs-built_in">not</span> understand them.</pre> </div> </div> <div> <div> <pre class="hljs language-vbnet"><span class="hljs-number">4</span>-<span class="hljs-type">byte</span> extension signature. <span class="hljs-keyword">If</span> the first <span class="hljs-type">byte</span> <span class="hljs-built_in">is</span> <span class="hljs-comment">&apos;A&apos;..&apos;Z&apos; the</span>
extension <span class="hljs-built_in">is</span> <span class="hljs-keyword">optional</span> <span class="hljs-built_in">and</span> can be ignored.</pre> </div> </div> <div> <div> <pre class="hljs language-swift"><span class="hljs-number">32</span><span class="hljs-operator">-</span>bit size of the <span class="hljs-keyword">extension</span></pre> </div> </div> <div> <div> <pre class="hljs language-kotlin">Extension <span class="hljs-keyword">data</span></pre> </div> </div> </li> <li> <p><span data-i18n="fac962848c723c0bfbead4ca211cc1d96ccceeaf0ef5cfd50af3edf5e63fa316/55" data-source="Hash checksum over the content of the index file before this checksum." onmousemove="i18n(this)">&KHcy;&ecy;&shcy;-&kcy;&ocy;&ncy;&tcy;&rcy;&ocy;&lcy;&softcy;&ncy;&acy;&yacy; &scy;&ucy;&mcy;&mcy;&acy; &scy;&ocy;&dcy;&iecy;&rcy;&zhcy;&icy;&mcy;&ocy;&gcy;&ocy; &icy;&ncy;&dcy;&iecy;&kcy;&scy;&ncy;&ocy;&gcy;&ocy; &fcy;&acy;&jcy;&lcy;&acy; &dcy;&ocy; &ecy;&tcy;&ocy;&jcy; &kcy;&ocy;&ncy;&tcy;&rcy;&ocy;&lcy;&softcy;&ncy;&ocy;&jcy; &scy;&ucy;&mcy;&mcy;&ycy;.</span></p> </li> </ul> </div> </div> <h2 class="text-body-emphasis"  id="_index_entry"><span data-i18n="d4b913528f0aae9291e736f86cc699fe2c80e85780db8b3f1e93ca2fdb2fcd94/ac" data-source="Index entry" onmousemove="i18n(this)">Index entry</span></h2> <div> <div> <div> <pre class="hljs language-vbnet">Index entries are sorted <span class="hljs-keyword">in</span> ascending <span class="hljs-keyword">order</span> <span class="hljs-keyword">on</span> the name field,
interpreted <span class="hljs-keyword">as</span> a <span class="hljs-type">string</span> <span class="hljs-keyword">of</span> unsigned bytes (i.e. memcmp() <span class="hljs-keyword">order</span>, no
localization, no special casing <span class="hljs-keyword">of</span> directory separator <span class="hljs-comment">&apos;/&apos;). Entries</span>
<span class="hljs-keyword">with</span> the same name are sorted <span class="hljs-keyword">by</span> their stage field.</pre> </div> </div> <div> <div> <pre class="hljs language-perl">An <span class="hljs-keyword">index</span> entry typically represents a file. However, <span class="hljs-keyword">if</span> sparse-checkout
is enabled in cone mode (<span class="hljs-string">`core.sparseCheckoutCone`</span> is enabled) <span class="hljs-keyword">and</span> the
<span class="hljs-string">`extensions.sparseIndex`</span> extension is enabled, then the <span class="hljs-keyword">index</span> may
contain entries <span class="hljs-keyword">for</span> directories outside of the sparse-checkout definition.
These entries have mode <span class="hljs-string">`040000`</span>, include the <span class="hljs-string">`SKIP_WORKTREE`</span> bit, <span class="hljs-keyword">and</span>
the path ends in a directory separator.</pre> </div> </div> <div> <div> <pre class="hljs language-perl"><span class="hljs-number">32</span>-bit ctime seconds, the <span class="hljs-keyword">last</span> <span class="hljs-keyword">time</span> a file<span class="hljs-string">&apos;s metadata changed
  this is stat(2) data</span></pre> </div> </div> <div> <div> <pre class="hljs language-kotlin"><span class="hljs-number">32</span>-bit ctime nanosecond fractions
  <span class="hljs-keyword">this</span> <span class="hljs-keyword">is</span> stat(<span class="hljs-number">2</span>) <span class="hljs-keyword">data</span></pre> </div> </div> <div> <div> <pre class="hljs language-perl"><span class="hljs-number">32</span>-bit mtime seconds, the <span class="hljs-keyword">last</span> <span class="hljs-keyword">time</span> a file<span class="hljs-string">&apos;s data changed
  this is stat(2) data</span></pre> </div> </div> <div> <div> <pre class="hljs language-kotlin"><span class="hljs-number">32</span>-bit mtime nanosecond fractions
  <span class="hljs-keyword">this</span> <span class="hljs-keyword">is</span> stat(<span class="hljs-number">2</span>) <span class="hljs-keyword">data</span></pre> </div> </div> <div> <div> <pre class="hljs language-kotlin"><span class="hljs-number">32</span>-bit dev
  <span class="hljs-keyword">this</span> <span class="hljs-keyword">is</span> stat(<span class="hljs-number">2</span>) <span class="hljs-keyword">data</span></pre> </div> </div> <div> <div> <pre class="hljs language-kotlin"><span class="hljs-number">32</span>-bit ino
  <span class="hljs-keyword">this</span> <span class="hljs-keyword">is</span> stat(<span class="hljs-number">2</span>) <span class="hljs-keyword">data</span></pre> </div> </div> <div> <div> <pre class="hljs language-vbnet"><span class="hljs-number">32</span>-bit mode, split <span class="hljs-keyword">into</span> (high <span class="hljs-keyword">to</span> low bits)</pre> </div> </div> <div> <div> <pre class="hljs language-undefined">16-bit unused, must be zero</pre> </div> </div> <div> <div> <pre class="hljs language-scss"><span class="hljs-number">4</span>-bit <span class="hljs-selector-tag">object</span> type
  valid values in binary are <span class="hljs-number">1000</span> (regular file), <span class="hljs-number">1010</span> (symbolic link)
  and <span class="hljs-number">1110</span> (gitlink)</pre> </div> </div> <div> <div> <pre class="hljs language-undefined">3-bit unused, must be zero</pre> </div> </div> <div> <div> <pre class="hljs language-kotlin"><span class="hljs-number">9</span>-bit unix permission. Only <span class="hljs-number">0755</span> and <span class="hljs-number">0644</span> are valid <span class="hljs-keyword">for</span> regular files.
Symbolic links and gitlinks have value <span class="hljs-number">0</span> <span class="hljs-keyword">in</span> <span class="hljs-keyword">this</span> field.</pre> </div> </div> <div> <div> <pre class="hljs language-kotlin"><span class="hljs-number">32</span>-bit uid
  <span class="hljs-keyword">this</span> <span class="hljs-keyword">is</span> stat(<span class="hljs-number">2</span>) <span class="hljs-keyword">data</span></pre> </div> </div> <div> <div> <pre class="hljs language-kotlin"><span class="hljs-number">32</span>-bit gid
  <span class="hljs-keyword">this</span> <span class="hljs-keyword">is</span> stat(<span class="hljs-number">2</span>) <span class="hljs-keyword">data</span></pre> </div> </div> <div> <div> <pre class="hljs language-vbnet"><span class="hljs-number">32</span>-bit file size
  This <span class="hljs-built_in">is</span> the <span class="hljs-keyword">on</span>-disk size <span class="hljs-keyword">from</span> stat(<span class="hljs-number">2</span>), truncated <span class="hljs-keyword">to</span> <span class="hljs-number">32</span>-bit.</pre> </div> </div> <div> <div> <pre class="hljs language-css"><span class="hljs-selector-tag">Object</span> name for the represented <span class="hljs-selector-tag">object</span></pre> </div> </div> <div> <div> <pre class="hljs language-bash">A 16-bit <span class="hljs-string">&apos;flags&apos;</span> field <span class="hljs-built_in">split</span> into (high to low bits)</pre> </div> </div> <div> <div> <pre class="hljs language-undefined">1-bit assume-valid flag</pre> </div> </div> <div> <div> <pre class="hljs language-java"><span class="hljs-number">1</span>-bit extended <span class="hljs-title function_">flag</span> <span class="hljs-params">(must be zero in version <span class="hljs-number">2</span>)</span></pre> </div> </div> <div> <div> <pre class="hljs language-java"><span class="hljs-number">2</span>-bit <span class="hljs-title function_">stage</span> <span class="hljs-params">(during merge)</span></pre> </div> </div> <div> <div> <pre class="hljs language-kotlin"><span class="hljs-number">12</span>-bit name length <span class="hljs-keyword">if</span> the length <span class="hljs-keyword">is</span> less than <span class="hljs-number">0xFFF</span>; otherwise <span class="hljs-number">0xFFF</span>
<span class="hljs-keyword">is</span> stored <span class="hljs-keyword">in</span> <span class="hljs-keyword">this</span> field.</pre> </div> </div> <div> <div> <pre class="hljs language-vbnet">(Version <span class="hljs-number">3</span> <span class="hljs-built_in">or</span> later) A <span class="hljs-number">16</span>-bit field, only applicable <span class="hljs-keyword">if</span> the
<span class="hljs-string">&quot;extended flag&quot;</span> above <span class="hljs-built_in">is</span> <span class="hljs-number">1</span>, split <span class="hljs-keyword">into</span> (high <span class="hljs-keyword">to</span> low bits).</pre> </div> </div> <div> <div> <pre class="hljs language-cpp"><span class="hljs-number">1</span>-bit reserved <span class="hljs-keyword">for</span> future</pre> </div> </div> <div> <div> <pre class="hljs language-vbnet"><span class="hljs-number">1</span>-bit <span class="hljs-keyword">skip</span>-worktree flag (used <span class="hljs-keyword">by</span> sparse checkout)</pre> </div> </div> <div> <div> <pre class="hljs language-csharp"><span class="hljs-number">1</span>-bit intent-to-<span class="hljs-function"><span class="hljs-keyword">add</span> <span class="hljs-title">flag</span> (<span class="hljs-params">used <span class="hljs-keyword">by</span> <span class="hljs-string">&quot;git add -N&quot;</span></span>)</span></pre> </div> </div> <div> <div> <pre class="hljs language-undefined">13-bit unused, must be zero</pre> </div> </div> <div> <div> <pre class="hljs language-sql">Entry path name (variable length) relative <span class="hljs-keyword">to</span> top level directory
  (<span class="hljs-keyword">without</span> <span class="hljs-keyword">leading</span> slash). <span class="hljs-string">&apos;/&apos;</span> <span class="hljs-keyword">is</span> used <span class="hljs-keyword">as</span> path separator. The special
  path components &quot;.&quot;, &quot;..&quot; <span class="hljs-keyword">and</span> &quot;.git&quot; (<span class="hljs-keyword">without</span> quotes) <span class="hljs-keyword">are</span> disallowed.
  <span class="hljs-keyword">Trailing</span> slash <span class="hljs-keyword">is</span> also disallowed.</pre> </div> </div> <div> <div> <pre class="hljs language-kotlin">The exact encoding <span class="hljs-keyword">is</span> undefined, but the <span class="hljs-string">&apos;.&apos;</span> and <span class="hljs-string">&apos;/&apos;</span> characters
are encoded <span class="hljs-keyword">in</span> <span class="hljs-number">7</span>-bit ASCII and the encoding cannot contain a NUL
byte (iow, <span class="hljs-keyword">this</span> <span class="hljs-keyword">is</span> a UNIX pathname).</pre> </div> </div> <div> <div> <pre class="hljs language-vbnet">(Version <span class="hljs-number">4</span>) <span class="hljs-keyword">In</span> version <span class="hljs-number">4</span>, the entry path name <span class="hljs-built_in">is</span> prefix-compressed
  relative <span class="hljs-keyword">to</span> the path name <span class="hljs-keyword">for</span> the previous entry (the very first
  entry <span class="hljs-built_in">is</span> encoded <span class="hljs-keyword">as</span> <span class="hljs-keyword">if</span> the path name <span class="hljs-keyword">for</span> the previous entry <span class="hljs-built_in">is</span> an
  empty <span class="hljs-type">string</span>).  At the beginning <span class="hljs-keyword">of</span> an entry, an <span class="hljs-type">integer</span> N <span class="hljs-keyword">in</span> the
  variable width encoding (the same encoding <span class="hljs-keyword">as</span> the offset <span class="hljs-built_in">is</span> encoded
  <span class="hljs-keyword">for</span> OFS_DELTA pack entries; see gitformat-pack[<span class="hljs-number">5</span>]) <span class="hljs-built_in">is</span> stored, followed
  <span class="hljs-keyword">by</span> a NUL-terminated <span class="hljs-type">string</span> S.  Removing N bytes <span class="hljs-keyword">from</span> the <span class="hljs-keyword">end</span> <span class="hljs-keyword">of</span> the
  path name <span class="hljs-keyword">for</span> the previous entry, <span class="hljs-built_in">and</span> replacing it <span class="hljs-keyword">with</span> the <span class="hljs-type">string</span> S
  yields the path name <span class="hljs-keyword">for</span> this entry.</pre> </div> </div> <div> <div> <pre class="hljs language-python"><span class="hljs-number">1</span>-<span class="hljs-number">8</span> nul <span class="hljs-built_in">bytes</span> <span class="hljs-keyword">as</span> necessary to pad the entry to a multiple of eight <span class="hljs-built_in">bytes</span>
<span class="hljs-keyword">while</span> keeping the name NUL-terminated.</pre> </div> </div> <div> <div> <pre class="hljs language-scss">(Version <span class="hljs-number">4</span>) In version <span class="hljs-number">4</span>, the <span class="hljs-attribute">padding</span> after the pathname does not
exist.</pre> </div> </div> <div> <div> <pre class="hljs language-perl">Interpretation of <span class="hljs-keyword">index</span> entries in <span class="hljs-keyword">split</span> <span class="hljs-keyword">index</span> mode is completely
different. See below <span class="hljs-keyword">for</span> details.</pre> </div> </div> </div> <h2 class="text-body-emphasis"  id="_extensions"><span data-i18n="fe3436af86b47d22f22d93da68119fcb749dbed0335b4dc99f254e02db236156/dc" data-source="Extensions" onmousemove="i18n(this)">Extensions</span></h2> <div> <div> <h3 class="text-body-emphasis"  id="_cache_tree"><span data-i18n="182dcf3d8fb834c17bb7db8b2770831372b2b8681c989238b575112c08ac2dc9/58" data-source="Cache tree" onmousemove="i18n(this)">Cache tree</span></h3> <div> <div> <pre class="hljs language-css">Since the index does not record entries for directories, the cache
entries cannot describe tree objects that already exist in the <span class="hljs-selector-tag">object</span>
database for regions of the index that are unchanged <span class="hljs-selector-tag">from</span> an existing
commit. The cache tree extension stores <span class="hljs-selector-tag">a</span> recursive tree structure that
describes the trees that already exist and completely match sections of
the cache entries. This speeds up tree <span class="hljs-selector-tag">object</span> generation <span class="hljs-selector-tag">from</span> the index
for <span class="hljs-selector-tag">a</span> new commit by only computing the trees that are &quot;new&quot; <span class="hljs-selector-tag">to</span> that
commit. It also assists when comparing the index <span class="hljs-selector-tag">to</span> another tree, such
as `HEAD^{tree}`, since sections of the index can be skipped when <span class="hljs-selector-tag">a</span> tree
comparison demonstrates equality.</pre> </div> </div> <div> <div> <pre class="hljs language-vbnet">The recursive tree <span class="hljs-keyword">structure</span> uses nodes that store a number <span class="hljs-keyword">of</span> cache
entries, a list <span class="hljs-keyword">of</span> subnodes, <span class="hljs-built_in">and</span> an <span class="hljs-type">object</span> ID (OID). The OID references
the existing tree <span class="hljs-keyword">for</span> that node, <span class="hljs-keyword">if</span> it <span class="hljs-built_in">is</span> known <span class="hljs-keyword">to</span> exist. The subnodes
correspond <span class="hljs-keyword">to</span> subdirectories that themselves have cache tree nodes. The
number <span class="hljs-keyword">of</span> cache entries corresponds <span class="hljs-keyword">to</span> the number <span class="hljs-keyword">of</span> cache entries <span class="hljs-keyword">in</span>
the index that describe paths within that tree<span class="hljs-comment">&apos;s directory.</span></pre> </div> </div> <div> <div> <pre class="hljs language-kotlin">The extension tracks the full directory structure <span class="hljs-keyword">in</span> the cache tree
extension, but <span class="hljs-keyword">this</span> <span class="hljs-keyword">is</span> generally smaller than the full cache entry list.</pre> </div> </div> <div> <div> <pre class="hljs language-vbnet"><span class="hljs-keyword">When</span> a path <span class="hljs-built_in">is</span> updated <span class="hljs-keyword">in</span> index, Git invalidates all nodes <span class="hljs-keyword">of</span> the
recursive cache tree corresponding <span class="hljs-keyword">to</span> the parent directories <span class="hljs-keyword">of</span> that
path. We store these tree nodes <span class="hljs-keyword">as</span> being <span class="hljs-string">&quot;invalid&quot;</span> <span class="hljs-keyword">by</span> <span class="hljs-keyword">using</span> <span class="hljs-string">&quot;-1&quot;</span> <span class="hljs-keyword">as</span> the
number <span class="hljs-keyword">of</span> cache entries. Invalid nodes still store a span <span class="hljs-keyword">of</span> index
entries, allowing Git <span class="hljs-keyword">to</span> focus its efforts <span class="hljs-keyword">when</span> reconstructing a full
cache tree.</pre> </div> </div> <div> <div> <pre class="hljs language-kotlin">The signature <span class="hljs-keyword">for</span> <span class="hljs-keyword">this</span> extension <span class="hljs-keyword">is</span> { <span class="hljs-string">&apos;T&apos;</span>, <span class="hljs-string">&apos;R&apos;</span>, <span class="hljs-string">&apos;E&apos;</span>, <span class="hljs-string">&apos;E&apos;</span> }.</pre> </div> </div> <div> <div> <pre class="hljs language-bash">A series of entries fill the entire extension; each of <span class="hljs-built_in">which</span>
consists of:</pre> </div> </div> <div> <ul> <li> <p><span data-i18n="3b38155c5b388aab99945e9a92dd283a97c9e1a7f39a68dc3b1e9a8b8f520010/63" data-source="NUL-terminated path component (relative to its parent directory);" onmousemove="i18n(this)">&Kcy;&ocy;&mcy;&pcy;&ocy;&ncy;&iecy;&ncy;&tcy; &pcy;&ucy;&tcy;&icy;, &zcy;&acy;&vcy;&iecy;&rcy;&shcy;&acy;&yucy;&shchcy;&icy;&jcy;&scy;&yacy; NUL (&ocy;&tcy;&ncy;&ocy;&scy;&icy;&tcy;&iecy;&lcy;&softcy;&ncy;&ocy; &iecy;&gcy;&ocy; &rcy;&ocy;&dcy;&icy;&tcy;&iecy;&lcy;&softcy;&scy;&kcy;&ocy;&gcy;&ocy; &kcy;&acy;&tcy;&acy;&lcy;&ocy;&gcy;&acy;);</span></p> </li> <li> <p><span data-i18n="3121a9fcb207718106fa776b0266b566f13a56d695d02a84aa11e823a9d2b619/ba" data-source="ASCII decimal number of entries in the index that is covered by the tree this entry represents (entry_count);" onmousemove="i18n(this)">&Dcy;&iecy;&scy;&yacy;&tcy;&icy;&chcy;&ncy;&ocy;&iecy; &chcy;&icy;&scy;&lcy;&ocy; &zcy;&acy;&pcy;&icy;&scy;&iecy;&jcy; &vcy; &fcy;&ocy;&rcy;&mcy;&acy;&tcy;&iecy; ASCII &vcy; &icy;&ncy;&dcy;&iecy;&kcy;&scy;&iecy;, &ocy;&khcy;&vcy;&acy;&tcy;&ycy;&vcy;&acy;&iecy;&mcy;&ocy;&mcy; &dcy;&iecy;&rcy;&iecy;&vcy;&ocy;&mcy;, &kcy;&ocy;&tcy;&ocy;&rcy;&ocy;&iecy; &pcy;&rcy;&iecy;&dcy;&scy;&tcy;&acy;&vcy;&lcy;&yacy;&iecy;&tcy; &ecy;&tcy;&acy; &zcy;&acy;&pcy;&icy;&scy;&softcy; (entry_count);</span></p> </li> <li> <p><span data-i18n="e13bd0829e45986af3f7fd09183383497ea69da94c7d603466b675766a1f838c/02" data-source="A space (ASCII 32);" onmousemove="i18n(this)">&Pcy;&rcy;&ocy;&bcy;&iecy;&lcy; (ASCII 32);</span></p> </li> <li> <p><span data-i18n="8fb0db1b24d1fc47755524996c88b851b7cccd49377a4d48af700750c2817768/28" data-source="ASCII decimal number that represents the number of subtrees this tree has;" onmousemove="i18n(this)">&Dcy;&iecy;&scy;&yacy;&tcy;&icy;&chcy;&ncy;&ocy;&iecy; &chcy;&icy;&scy;&lcy;&ocy; ASCII, &ocy;&bcy;&ocy;&zcy;&ncy;&acy;&chcy;&acy;&yucy;&shchcy;&iecy;&iecy; &kcy;&ocy;&lcy;&icy;&chcy;&iecy;&scy;&tcy;&vcy;&ocy; &pcy;&ocy;&dcy;&dcy;&iecy;&rcy;&iecy;&vcy;&softcy;&iecy;&vcy; &vcy; &ecy;&tcy;&ocy;&mcy; &dcy;&iecy;&rcy;&iecy;&vcy;&iecy;;</span></p> </li> <li> <p><span data-i18n="6ca6378a6de3f2729fc54381902ede488587b7f30c8053fbdfe83364144a0d2e/a8" data-source="A newline (ASCII 10); and" onmousemove="i18n(this)">&Ncy;&ocy;&vcy;&acy;&yacy; &scy;&tcy;&rcy;&ocy;&kcy;&acy; (ASCII 10); &icy;</span></p> </li> <li> <p><span data-i18n="37a9fdeed32f799966058b92441f6ef0866c8f013b3a43780a2890fddf38c85e/21" data-source="Object name for the object that would result from writing this span of index as a tree." onmousemove="i18n(this)">&Icy;&mcy;&yacy; &ocy;&bcy;&hardcy;&iecy;&kcy;&tcy;&acy;, &kcy;&ocy;&tcy;&ocy;&rcy;&ycy;&jcy; &bcy;&ucy;&dcy;&iecy;&tcy; &pcy;&ocy;&lcy;&ucy;&chcy;&iecy;&ncy; &vcy; &rcy;&iecy;&zcy;&ucy;&lcy;&softcy;&tcy;&acy;&tcy;&iecy; &zcy;&acy;&pcy;&icy;&scy;&icy; &ecy;&tcy;&ocy;&gcy;&ocy; &dcy;&icy;&acy;&pcy;&acy;&zcy;&ocy;&ncy;&acy; &icy;&ncy;&dcy;&iecy;&kcy;&scy;&acy; &vcy; &vcy;&icy;&dcy;&iecy; &dcy;&iecy;&rcy;&iecy;&vcy;&acy;.</span></p> <div> <div> <pre class="hljs language-vbnet">An entry can be <span class="hljs-keyword">in</span> an invalidated state <span class="hljs-built_in">and</span> <span class="hljs-built_in">is</span> represented <span class="hljs-keyword">by</span> having
a negative number <span class="hljs-keyword">in</span> the entry_count field. <span class="hljs-keyword">In</span> this <span class="hljs-keyword">case</span>, there <span class="hljs-built_in">is</span> no
<span class="hljs-type">object</span> name <span class="hljs-built_in">and</span> the <span class="hljs-keyword">next</span> entry starts immediately after the newline.
<span class="hljs-keyword">When</span> writing an invalid entry, -<span class="hljs-number">1</span> should always be used <span class="hljs-keyword">as</span> entry_count.</pre> </div> </div> <div> <div> <pre class="hljs language-sql">The entries <span class="hljs-keyword">are</span> written <span class="hljs-keyword">out</span> <span class="hljs-keyword">in</span> the top<span class="hljs-operator">-</span>down, depth<span class="hljs-operator">-</span><span class="hljs-keyword">first</span> order.  The
<span class="hljs-keyword">first</span> entry represents the root level <span class="hljs-keyword">of</span> the repository, followed <span class="hljs-keyword">by</span> the
<span class="hljs-keyword">first</span> subtree<span class="hljs-comment" title="--let&apos;s call this A--of the root level (with its name">--&ncy;&acy;&zcy;&ocy;&vcy;&iecy;&mcy; &ecy;&tcy;&ocy; A--&kcy;&ocy;&rcy;&ncy;&iecy;&vcy;&ocy;&gcy;&ocy; &ucy;&rcy;&ocy;&vcy;&ncy;&yacy; (&scy; &iecy;&gcy;&ocy; &icy;&mcy;&iecy;&ncy;&iecy;&mcy;</span>
relative <span class="hljs-keyword">to</span> the root level), followed <span class="hljs-keyword">by</span> the <span class="hljs-keyword">first</span> subtree <span class="hljs-keyword">of</span> A (<span class="hljs-keyword">with</span>
its name relative <span class="hljs-keyword">to</span> A), <span class="hljs-keyword">and</span> so on. The specified number <span class="hljs-keyword">of</span> subtrees
indicates <span class="hljs-keyword">when</span> the <span class="hljs-keyword">current</span> level <span class="hljs-keyword">of</span> the <span class="hljs-keyword">recursive</span> stack <span class="hljs-keyword">is</span> complete.</pre> </div> </div> </li> </ul> </div> </div> <div> <h3 class="text-body-emphasis"  id="_resolve_undo"><span data-i18n="90789e394b43a01f0ee23f0b3fee0f0a1edd38e110976ef21452f18cc5f985f8/03" data-source="Resolve undo" onmousemove="i18n(this)">Resolve undo</span></h3> <div> <div> <pre class="hljs language-vbnet">A conflict <span class="hljs-built_in">is</span> represented <span class="hljs-keyword">in</span> the index <span class="hljs-keyword">as</span> a <span class="hljs-keyword">set</span> <span class="hljs-keyword">of</span> higher stage entries.
<span class="hljs-keyword">When</span> a conflict <span class="hljs-built_in">is</span> resolved (e.g. <span class="hljs-keyword">with</span> <span class="hljs-string">&quot;git add path&quot;</span>), these higher
stage entries will be removed <span class="hljs-built_in">and</span> a stage-<span class="hljs-number">0</span> entry <span class="hljs-keyword">with</span> proper resolution
<span class="hljs-built_in">is</span> added.</pre> </div> </div> <div> <div> <pre class="hljs language-sql"><span class="hljs-keyword">When</span> these higher stage entries <span class="hljs-keyword">are</span> removed, they <span class="hljs-keyword">are</span> saved <span class="hljs-keyword">in</span> the
resolve undo extension, so that conflicts can be recreated (e.g. <span class="hljs-keyword">with</span>
&quot;git checkout -m&quot;), <span class="hljs-keyword">in</span> <span class="hljs-keyword">case</span> users want <span class="hljs-keyword">to</span> redo a conflict resolution
<span class="hljs-keyword">from</span> scratch.</pre> </div> </div> <div> <div> <pre class="hljs language-kotlin">The signature <span class="hljs-keyword">for</span> <span class="hljs-keyword">this</span> extension <span class="hljs-keyword">is</span> { <span class="hljs-string">&apos;R&apos;</span>, <span class="hljs-string">&apos;E&apos;</span>, <span class="hljs-string">&apos;U&apos;</span>, <span class="hljs-string">&apos;C&apos;</span> }.</pre> </div> </div> <div> <div> <pre class="hljs language-bash">A series of entries fill the entire extension; each of <span class="hljs-built_in">which</span>
consists of:</pre> </div> </div> <div> <ul> <li> <p><span data-i18n="295dfd636d99b3868a2a995065cb5bbcdcf0641f4f161cb0fd7777adf17423e3/61" data-source="NUL-terminated pathname the entry describes (relative to the root of the repository, i.e. full pathname);" onmousemove="i18n(this)">&Pcy;&ucy;&tcy;&softcy;, &zcy;&acy;&kcy;&acy;&ncy;&chcy;&icy;&vcy;&acy;&yucy;&shchcy;&icy;&jcy;&scy;&yacy; NUL, &kcy;&ocy;&tcy;&ocy;&rcy;&ycy;&jcy; &ocy;&pcy;&icy;&scy;&ycy;&vcy;&acy;&iecy;&tcy; &zcy;&acy;&pcy;&icy;&scy;&softcy; (&ocy;&tcy;&ncy;&ocy;&scy;&icy;&tcy;&iecy;&lcy;&softcy;&ncy;&ocy; &kcy;&ocy;&rcy;&ncy;&yacy; &rcy;&iecy;&pcy;&ocy;&zcy;&icy;&tcy;&ocy;&rcy;&icy;&yacy;, &tcy;. &iecy;. &pcy;&ocy;&lcy;&ncy;&ycy;&jcy; &pcy;&ucy;&tcy;&softcy;);</span></p> </li> <li> <p><span data-i18n="06b971e383d764923c23e29877c424281a492087bd07188202500c3496bf2210/68" data-source="Three NUL-terminated ASCII octal numbers, entry mode of entries in stage 1 to 3 (a missing stage is represented by &amp;quot;0&amp;quot; in this field); and" onmousemove="i18n(this)">&Tcy;&rcy;&icy; &vcy;&ocy;&scy;&softcy;&mcy;&iecy;&rcy;&icy;&chcy;&ncy;&ycy;&khcy; &chcy;&icy;&scy;&lcy;&acy; ASCII &scy; &zcy;&acy;&vcy;&iecy;&rcy;&shcy;&acy;&yucy;&shchcy;&icy;&mcy; &ncy;&ucy;&lcy;&iecy;&mcy;, &rcy;&iecy;&zhcy;&icy;&mcy; &vcy;&vcy;&ocy;&dcy;&acy; &zcy;&acy;&pcy;&icy;&scy;&iecy;&jcy; &ncy;&acy; &ecy;&tcy;&acy;&pcy;&acy;&khcy; &ocy;&tcy; 1 &dcy;&ocy; 3 (&ocy;&tcy;&scy;&ucy;&tcy;&scy;&tcy;&vcy;&ucy;&yucy;&shchcy;&icy;&jcy; &ecy;&tcy;&acy;&pcy; &ocy;&bcy;&ocy;&zcy;&ncy;&acy;&chcy;&acy;&iecy;&tcy;&scy;&yacy; &vcy; &ecy;&tcy;&ocy;&mcy; &pcy;&ocy;&lcy;&iecy;  &quot;0&quot; ); &icy;</span></p> </li> <li> <p><span data-i18n="297fbe3b890b03e9b1b1288529a668df0c4b13dd6c31b471edbd68f3519b60a6/c7" data-source="At most three object names of the entry in stages from 1 to 3 (nothing is written for a missing stage)." onmousemove="i18n(this)">&Ncy;&iecy; &bcy;&ocy;&lcy;&iecy;&iecy; &tcy;&rcy;&iecy;&khcy; &ncy;&acy;&zcy;&vcy;&acy;&ncy;&icy;&jcy; &ocy;&bcy;&hardcy;&iecy;&kcy;&tcy;&ocy;&vcy; &zcy;&acy;&pcy;&icy;&scy;&icy; &ncy;&acy; &ecy;&tcy;&acy;&pcy;&acy;&khcy; &ocy;&tcy; 1 &dcy;&ocy; 3 (&pcy;&rcy;&ocy; &ocy;&tcy;&scy;&ucy;&tcy;&scy;&tcy;&vcy;&ucy;&yucy;&shchcy;&icy;&jcy; &ecy;&tcy;&acy;&pcy; &ncy;&icy;&chcy;&iecy;&gcy;&ocy; &ncy;&iecy; &pcy;&icy;&shcy;&iecy;&tcy;&scy;&yacy;).</span></p> </li> </ul> </div> </div> <div> <h3 class="text-body-emphasis"  id="_split_index"><span data-i18n="67a4887543ae99633d783a515edae09c066852dd541381cdc1058a76fa4fcf3c/80" data-source="Split index" onmousemove="i18n(this)">Split index</span></h3> <div> <div> <pre class="hljs language-css">In split index mode, the majority of index entries could be stored
in <span class="hljs-selector-tag">a</span> separate file. This extension records the changes <span class="hljs-selector-tag">to</span> be made on
<span class="hljs-attribute">top</span> of that <span class="hljs-selector-tag">to</span> produce the final index.</pre> </div> </div> <div> <div> <pre class="hljs language-kotlin">The signature <span class="hljs-keyword">for</span> <span class="hljs-keyword">this</span> extension <span class="hljs-keyword">is</span> { <span class="hljs-string">&apos;l&apos;</span>, <span class="hljs-string">&apos;i&apos;</span>, <span class="hljs-string">&apos;n&apos;</span>, <span class="hljs-string">&apos;k&apos;</span> }.</pre> </div> </div> <div> <div> <pre class="hljs language-swift"><span class="hljs-type">The</span> <span class="hljs-keyword">extension</span> <span class="hljs-title class_">consists</span> <span class="hljs-title class_">of</span>:</pre> </div> </div> <div> <ul> <li> <p><span data-i18n="7881e8b8ec59df4742898137629140df589ac23b25d508ac7c379deb06ebbbcd/3b" data-source="Hash of the shared index file. The shared index file path is $GIT_DIR/sharedindex.&amp;lt;hash&amp;gt;. If all bits are zero, the index does not require a shared index file." onmousemove="i18n(this)">&KHcy;&ecy;&shcy; &ocy;&bcy;&shchcy;&iecy;&gcy;&ocy; &icy;&ncy;&dcy;&iecy;&kcy;&scy;&ncy;&ocy;&gcy;&ocy; &fcy;&acy;&jcy;&lcy;&acy;. &Pcy;&ucy;&tcy;&softcy; &kcy; &fcy;&acy;&jcy;&lcy;&ucy; &ocy;&bcy;&shchcy;&iecy;&gcy;&ocy; &icy;&ncy;&dcy;&iecy;&kcy;&scy;&acy; &mdash; $GIT_DIR/sharedindex.&lt;hash&gt;. &IEcy;&scy;&lcy;&icy; &vcy;&scy;&iecy; &bcy;&icy;&tcy;&ycy; &rcy;&acy;&vcy;&ncy;&ycy; &ncy;&ucy;&lcy;&yucy;, &icy;&ncy;&dcy;&iecy;&kcy;&scy; &ncy;&iecy; &tcy;&rcy;&iecy;&bcy;&ucy;&iecy;&tcy; &ocy;&bcy;&shchcy;&iecy;&gcy;&ocy; &icy;&ncy;&dcy;&iecy;&kcy;&scy;&ncy;&ocy;&gcy;&ocy; &fcy;&acy;&jcy;&lcy;&acy;.</span></p> </li> <li> <p><span data-i18n="a41782b8ff3e3f690c13d6616e6297e00708dfd038c36de21b406e7e0a754171/f2" data-source="An ewah-encoded delete bitmap, each bit represents an entry in the shared index. If a bit is set, its corresponding entry in the shared index will be removed from the final index. Note, because a delete operation changes index entry positions, but we do need original positions in replace phase, it&amp;rsquo;s best to just mark entries for removal, then do a mass deletion after replacement." onmousemove="i18n(this)">&Bcy;&icy;&tcy;&ocy;&vcy;&acy;&yacy; &kcy;&acy;&rcy;&tcy;&acy; &ucy;&dcy;&acy;&lcy;&iecy;&ncy;&icy;&yacy;, &zcy;&acy;&kcy;&ocy;&dcy;&icy;&rcy;&ocy;&vcy;&acy;&ncy;&ncy;&acy;&yacy; &vcy; ewah, &kcy;&acy;&zhcy;&dcy;&ycy;&jcy; &bcy;&icy;&tcy; &pcy;&rcy;&iecy;&dcy;&scy;&tcy;&acy;&vcy;&lcy;&yacy;&iecy;&tcy; &zcy;&acy;&pcy;&icy;&scy;&softcy; &vcy; &ocy;&bcy;&shchcy;&iecy;&mcy; &icy;&ncy;&dcy;&iecy;&kcy;&scy;&iecy;. &IEcy;&scy;&lcy;&icy; &bcy;&icy;&tcy; &ucy;&scy;&tcy;&acy;&ncy;&ocy;&vcy;&lcy;&iecy;&ncy;, &scy;&ocy;&ocy;&tcy;&vcy;&iecy;&tcy;&scy;&tcy;&vcy;&ucy;&yucy;&shchcy;&acy;&yacy; &iecy;&mcy;&ucy; &zcy;&acy;&pcy;&icy;&scy;&softcy; &vcy; &ocy;&bcy;&shchcy;&iecy;&mcy; &icy;&ncy;&dcy;&iecy;&kcy;&scy;&iecy; &bcy;&ucy;&dcy;&iecy;&tcy; &ucy;&dcy;&acy;&lcy;&iecy;&ncy;&acy; &icy;&zcy; &ocy;&kcy;&ocy;&ncy;&chcy;&acy;&tcy;&iecy;&lcy;&softcy;&ncy;&ocy;&gcy;&ocy; &icy;&ncy;&dcy;&iecy;&kcy;&scy;&acy;. &Ocy;&bcy;&rcy;&acy;&tcy;&icy;&tcy;&iecy; &vcy;&ncy;&icy;&mcy;&acy;&ncy;&icy;&iecy;: &pcy;&ocy;&scy;&kcy;&ocy;&lcy;&softcy;&kcy;&ucy; &ocy;&pcy;&iecy;&rcy;&acy;&tscy;&icy;&yacy; &ucy;&dcy;&acy;&lcy;&iecy;&ncy;&icy;&yacy; &icy;&zcy;&mcy;&iecy;&ncy;&yacy;&iecy;&tcy; &pcy;&ocy;&zcy;&icy;&tscy;&icy;&icy; &zcy;&acy;&pcy;&icy;&scy;&iecy;&jcy; &icy;&ncy;&dcy;&iecy;&kcy;&scy;&acy;, &ncy;&ocy; &ncy;&acy;&mcy; &ncy;&ucy;&zhcy;&ncy;&ycy; &icy;&scy;&khcy;&ocy;&dcy;&ncy;&ycy;&iecy; &pcy;&ocy;&zcy;&icy;&tscy;&icy;&icy; &ncy;&acy; &ecy;&tcy;&acy;&pcy;&iecy; &zcy;&acy;&mcy;&iecy;&ncy;&ycy;, &lcy;&ucy;&chcy;&shcy;&iecy; &vcy;&scy;&iecy;&gcy;&ocy; &pcy;&rcy;&ocy;&scy;&tcy;&ocy; &pcy;&ocy;&mcy;&iecy;&tcy;&icy;&tcy;&softcy; &zcy;&acy;&pcy;&icy;&scy;&icy; &dcy;&lcy;&yacy; &ucy;&dcy;&acy;&lcy;&iecy;&ncy;&icy;&yacy;, &acy; &zcy;&acy;&tcy;&iecy;&mcy; &vcy;&ycy;&pcy;&ocy;&lcy;&ncy;&icy;&tcy;&softcy; &mcy;&acy;&scy;&scy;&ocy;&vcy;&ocy;&iecy; &ucy;&dcy;&acy;&lcy;&iecy;&ncy;&icy;&iecy; &pcy;&ocy;&scy;&lcy;&iecy; &zcy;&acy;&mcy;&iecy;&ncy;&ycy;.</span></p> </li> <li> <p><span data-i18n="567662ae41d81fc07a2a4c43fed1912e6449010931172dca3a6bd743823a7453/81" data-source="An ewah-encoded replace bitmap, each bit represents an entry in the shared index. If a bit is set, its corresponding entry in the shared index will be replaced with an entry in this index file. All replaced entries are stored in sorted order in this index. The first &amp;quot;1&amp;quot; bit in the replace bitmap corresponds to the first index entry, the second &amp;quot;1&amp;quot; bit to the second entry and so on. Replaced entries may have empty path names to save space." onmousemove="i18n(this)">&Bcy;&icy;&tcy;&ocy;&vcy;&acy;&yacy; &kcy;&acy;&rcy;&tcy;&acy; &zcy;&acy;&mcy;&iecy;&ncy;&ycy;, &zcy;&acy;&kcy;&ocy;&dcy;&icy;&rcy;&ocy;&vcy;&acy;&ncy;&ncy;&acy;&yacy; &vcy; ewah, &kcy;&acy;&zhcy;&dcy;&ycy;&jcy; &bcy;&icy;&tcy; &pcy;&rcy;&iecy;&dcy;&scy;&tcy;&acy;&vcy;&lcy;&yacy;&iecy;&tcy; &zcy;&acy;&pcy;&icy;&scy;&softcy; &vcy; &ocy;&bcy;&shchcy;&iecy;&mcy; &icy;&ncy;&dcy;&iecy;&kcy;&scy;&iecy;. &IEcy;&scy;&lcy;&icy; &bcy;&icy;&tcy; &ucy;&scy;&tcy;&acy;&ncy;&ocy;&vcy;&lcy;&iecy;&ncy;, &scy;&ocy;&ocy;&tcy;&vcy;&iecy;&tcy;&scy;&tcy;&vcy;&ucy;&yucy;&shchcy;&acy;&yacy; &iecy;&mcy;&ucy; &zcy;&acy;&pcy;&icy;&scy;&softcy; &vcy; &ocy;&bcy;&shchcy;&iecy;&mcy; &icy;&ncy;&dcy;&iecy;&kcy;&scy;&iecy; &bcy;&ucy;&dcy;&iecy;&tcy; &zcy;&acy;&mcy;&iecy;&ncy;&iecy;&ncy;&acy; &zcy;&acy;&pcy;&icy;&scy;&softcy;&yucy; &vcy; &ecy;&tcy;&ocy;&mcy; &icy;&ncy;&dcy;&iecy;&kcy;&scy;&ncy;&ocy;&mcy; &fcy;&acy;&jcy;&lcy;&iecy;. &Vcy;&scy;&iecy; &zcy;&acy;&mcy;&iecy;&ncy;&iecy;&ncy;&ncy;&ycy;&iecy; &zcy;&acy;&pcy;&icy;&scy;&icy; &khcy;&rcy;&acy;&ncy;&yacy;&tcy;&scy;&yacy; &vcy; &ecy;&tcy;&ocy;&mcy; &icy;&ncy;&dcy;&iecy;&kcy;&scy;&iecy; &vcy; &ocy;&tcy;&scy;&ocy;&rcy;&tcy;&icy;&rcy;&ocy;&vcy;&acy;&ncy;&ncy;&ocy;&mcy; &pcy;&ocy;&rcy;&yacy;&dcy;&kcy;&iecy;. &Pcy;&iecy;&rcy;&vcy;&ycy;&jcy; &bcy;&icy;&tcy;  &quot;1&quot;  &vcy; &bcy;&icy;&tcy;&ocy;&vcy;&ocy;&jcy; &kcy;&acy;&rcy;&tcy;&iecy; &zcy;&acy;&mcy;&iecy;&ncy;&ycy; &scy;&ocy;&ocy;&tcy;&vcy;&iecy;&tcy;&scy;&tcy;&vcy;&ucy;&iecy;&tcy; &pcy;&iecy;&rcy;&vcy;&ocy;&jcy; &zcy;&acy;&pcy;&icy;&scy;&icy; &icy;&ncy;&dcy;&iecy;&kcy;&scy;&acy;, &vcy;&tcy;&ocy;&rcy;&ocy;&jcy; &bcy;&icy;&tcy;  &quot;1&quot;  &mdash; &vcy;&tcy;&ocy;&rcy;&ocy;&jcy; &zcy;&acy;&pcy;&icy;&scy;&icy; &icy; &tcy;&acy;&kcy; &dcy;&acy;&lcy;&iecy;&iecy;. &Zcy;&acy;&mcy;&iecy;&ncy;&iecy;&ncy;&ncy;&ycy;&iecy; &zcy;&acy;&pcy;&icy;&scy;&icy; &mcy;&ocy;&gcy;&ucy;&tcy; &icy;&mcy;&iecy;&tcy;&softcy; &pcy;&ucy;&scy;&tcy;&ycy;&iecy; &icy;&mcy;&iecy;&ncy;&acy; &pcy;&ucy;&tcy;&iecy;&jcy; &dcy;&lcy;&yacy; &ecy;&kcy;&ocy;&ncy;&ocy;&mcy;&icy;&icy; &mcy;&iecy;&scy;&tcy;&acy;.</span></p> <div> <div> <pre class="hljs language-kotlin">The remaining index entries after replaced ones will be added to the
<span class="hljs-keyword">final</span> index. These added entries are also sorted <span class="hljs-keyword">by</span> entry name then
stage.</pre> </div> </div> </li> </ul> </div> </div> </div> <h2 class="text-body-emphasis"  id="_untracked_cache"><span data-i18n="de09429e8632d86aeeda311c3e0a08d451def65bdee618cf768048686f8611b5/21" data-source="Untracked cache" onmousemove="i18n(this)">Untracked cache</span></h2> <div> <div> <div> <pre class="hljs language-kotlin">Untracked cache saves the untracked file list and necessary <span class="hljs-keyword">data</span> to
verify the cache. The signature <span class="hljs-keyword">for</span> <span class="hljs-keyword">this</span> extension <span class="hljs-keyword">is</span> { <span class="hljs-string">&apos;U&apos;</span>, <span class="hljs-string">&apos;N&apos;</span>,
<span class="hljs-string">&apos;T&apos;</span>, <span class="hljs-string">&apos;R&apos;</span> }.</pre> </div> </div> <div> <div> <pre class="hljs language-csharp">The extension starts <span class="hljs-keyword">with</span></pre> </div> </div> <div> <ul> <li> <p><span data-i18n="8112ee11d3e43e432fbdda61b7badef12ce0506357bfef8458f6667430eed851/5c" data-source="A sequence of NUL-terminated strings, preceded by the size of the sequence in variable width encoding. Each string describes the environment where the cache can be used." onmousemove="i18n(this)">&Pcy;&ocy;&scy;&lcy;&iecy;&dcy;&ocy;&vcy;&acy;&tcy;&iecy;&lcy;&softcy;&ncy;&ocy;&scy;&tcy;&softcy; &scy;&tcy;&rcy;&ocy;&kcy;, &zcy;&acy;&vcy;&iecy;&rcy;&shcy;&acy;&yucy;&shchcy;&icy;&khcy;&scy;&yacy; NUL, &kcy;&ocy;&tcy;&ocy;&rcy;&ycy;&mcy; &pcy;&rcy;&iecy;&dcy;&shcy;&iecy;&scy;&tcy;&vcy;&ucy;&iecy;&tcy; &rcy;&acy;&zcy;&mcy;&iecy;&rcy; &pcy;&ocy;&scy;&lcy;&iecy;&dcy;&ocy;&vcy;&acy;&tcy;&iecy;&lcy;&softcy;&ncy;&ocy;&scy;&tcy;&icy; &vcy; &kcy;&ocy;&dcy;&icy;&rcy;&ocy;&vcy;&acy;&ncy;&icy;&icy; &scy; &pcy;&iecy;&rcy;&iecy;&mcy;&iecy;&ncy;&ncy;&ocy;&jcy; &shcy;&icy;&rcy;&icy;&ncy;&ocy;&jcy;. &Kcy;&acy;&zhcy;&dcy;&acy;&yacy; &scy;&tcy;&rcy;&ocy;&kcy;&acy; &ocy;&pcy;&icy;&scy;&ycy;&vcy;&acy;&iecy;&tcy; &scy;&rcy;&iecy;&dcy;&ucy;, &vcy; &kcy;&ocy;&tcy;&ocy;&rcy;&ocy;&jcy; &mcy;&ocy;&zhcy;&ncy;&ocy; &icy;&scy;&pcy;&ocy;&lcy;&softcy;&zcy;&ocy;&vcy;&acy;&tcy;&softcy; &kcy;&ecy;&shcy;.</span></p> </li> <li> <p><span data-i18n="7b7106c119739430da218261f1687ae6eaf9e589939006283bea0db92d02e07a/98" data-source="Stat data of $GIT_DIR/info/exclude. See &amp;quot;Index entry&amp;quot; section from ctime field until &amp;quot;file size&amp;quot;." onmousemove="i18n(this)">&Scy;&tcy;&acy;&tcy;&icy;&scy;&tcy;&icy;&chcy;&iecy;&scy;&kcy;&icy;&iecy; &dcy;&acy;&ncy;&ncy;&ycy;&iecy; $GIT_DIR/info/exclude. &Scy;&mcy;. &rcy;&acy;&zcy;&dcy;&iecy;&lcy;  &quot;Index entry&quot;  &ocy;&tcy; &pcy;&ocy;&lcy;&yacy; ctime &dcy;&ocy;  &quot;file size&quot; .</span></p> </li> <li> <p><span data-i18n="07407961d4a274c04ad5cbe6ee1bc3d546757c440909ad6808da2b30bc31b558/20" data-source="Stat data of core.excludesFile" onmousemove="i18n(this)">&Scy;&tcy;&acy;&tcy;&icy;&scy;&tcy;&icy;&chcy;&iecy;&scy;&kcy;&icy;&iecy; &dcy;&acy;&ncy;&ncy;&ycy;&iecy; core.excludesFile</span></p> </li> <li> <p><span data-i18n="9a2ce635a62dfd1aa82d7ac0315a0e02a7120a4f74699e8ac3036c127b8597ae/bd" data-source="32-bit dir_flags (see struct dir_struct)" onmousemove="i18n(this)">32-&bcy;&icy;&tcy;&ncy;&ycy;&iecy; dir_flags (&scy;&mcy;. &scy;&tcy;&rcy;&ucy;&kcy;&tcy;&ucy;&rcy;&ucy; dir_struct)</span></p> </li> <li> <p><span data-i18n="cbf8e5bea09acb607898b786ce77d100f130927d316afc66116a50778d44d801/28" data-source="Hash of $GIT_DIR/info/exclude. A null hash means the file does not exist." onmousemove="i18n(this)">&KHcy;&ecy;&shcy; $GIT_DIR/info/exclude. &KHcy;&ecy;&shcy;  null  &ocy;&zcy;&ncy;&acy;&chcy;&acy;&iecy;&tcy;, &chcy;&tcy;&ocy; &fcy;&acy;&jcy;&lcy; &ncy;&iecy; &scy;&ucy;&shchcy;&iecy;&scy;&tcy;&vcy;&ucy;&iecy;&tcy;.</span></p> </li> <li> <p><span data-i18n="9ab94f8808fbdfca5f4c0bed13ed67869e6cc20742f216b9e5c777331c3c4ec7/bc" data-source="Hash of core.excludesFile. A null hash means the file does not exist." onmousemove="i18n(this)">&KHcy;&ecy;&shcy; &fcy;&acy;&jcy;&lcy;&acy; core.excludesFile. &KHcy;&ecy;&shcy;  null  &ocy;&zcy;&ncy;&acy;&chcy;&acy;&iecy;&tcy;, &chcy;&tcy;&ocy; &fcy;&acy;&jcy;&lcy; &ncy;&iecy; &scy;&ucy;&shchcy;&iecy;&scy;&tcy;&vcy;&ucy;&iecy;&tcy;.</span></p> </li> <li> <p><span data-i18n="767c159de7aa1733fdabb371c5803ec27b83492a6b5fef747df21f13d2d415fc/27" data-source="NUL-terminated string of per-dir exclude file name. This usually is &amp;quot;.gitignore&amp;quot;." onmousemove="i18n(this)">&Scy;&tcy;&rcy;&ocy;&kcy;&acy; &scy; &ncy;&ucy;&lcy;&iecy;&vcy;&ycy;&mcy; &zcy;&acy;&vcy;&iecy;&rcy;&shcy;&iecy;&ncy;&icy;&iecy;&mcy; &dcy;&lcy;&yacy; &kcy;&acy;&zhcy;&dcy;&ocy;&gcy;&ocy; &kcy;&acy;&tcy;&acy;&lcy;&ocy;&gcy;&acy;, &icy;&scy;&kcy;&lcy;&yucy;&chcy;&acy;&yucy;&shchcy;&acy;&yacy; &icy;&mcy;&yacy; &fcy;&acy;&jcy;&lcy;&acy;. &Ocy;&bcy;&ycy;&chcy;&ncy;&ocy; &ecy;&tcy;&ocy;  &quot;.gitignore&quot; .</span></p> </li> <li> <p><span data-i18n="2edea134e230339648d79031faf0ce2bb632793e16b0462ff49b774cd8e9427e/48" data-source="The number of following directory blocks, variable width encoding. If this number is zero, the extension ends here with a following NUL." onmousemove="i18n(this)">&Kcy;&ocy;&lcy;&icy;&chcy;&iecy;&scy;&tcy;&vcy;&ocy; &scy;&lcy;&iecy;&dcy;&ucy;&yucy;&shchcy;&icy;&khcy; &bcy;&lcy;&ocy;&kcy;&ocy;&vcy; &kcy;&acy;&tcy;&acy;&lcy;&ocy;&gcy;&acy;, &kcy;&ocy;&dcy;&icy;&rcy;&ocy;&vcy;&kcy;&acy; &pcy;&iecy;&rcy;&iecy;&mcy;&iecy;&ncy;&ncy;&ocy;&jcy; &shcy;&icy;&rcy;&icy;&ncy;&ycy;. &IEcy;&scy;&lcy;&icy; &ecy;&tcy;&ocy; &chcy;&icy;&scy;&lcy;&ocy; &rcy;&acy;&vcy;&ncy;&ocy; &ncy;&ucy;&lcy;&yucy;, &rcy;&acy;&scy;&shcy;&icy;&rcy;&iecy;&ncy;&icy;&iecy; &zcy;&acy;&kcy;&acy;&ncy;&chcy;&icy;&vcy;&acy;&iecy;&tcy;&scy;&yacy; &zcy;&dcy;&iecy;&scy;&softcy; &scy;&lcy;&iecy;&dcy;&ucy;&yucy;&shchcy;&icy;&mcy; NUL.</span></p> </li> <li> <p><span data-i18n="c2c501090b8f0367a154fd49ba656a644ea09038f587dfa9bd7d4d69750bc694/67" data-source="A number of directory blocks in depth-first-search order, each consists of" onmousemove="i18n(this)">&Ncy;&iecy;&scy;&kcy;&ocy;&lcy;&softcy;&kcy;&ocy; &bcy;&lcy;&ocy;&kcy;&ocy;&vcy; &kcy;&acy;&tcy;&acy;&lcy;&ocy;&gcy;&ocy;&vcy; &vcy; &pcy;&ocy;&rcy;&yacy;&dcy;&kcy;&iecy; &pcy;&ocy;&icy;&scy;&kcy;&acy; &vcy; &gcy;&lcy;&ucy;&bcy;&icy;&ncy;&ucy;, &kcy;&acy;&zhcy;&dcy;&ycy;&jcy; &icy;&zcy; &kcy;&ocy;&tcy;&ocy;&rcy;&ycy;&khcy; &scy;&ocy;&scy;&tcy;&ocy;&icy;&tcy; &icy;&zcy;</span></p> </li> <li> <p><span data-i18n="2041df27d5a607d5e68abfaebaf9a30bc8acdfbf54026d995dce47275aa3de25/11" data-source="The number of untracked entries, variable width encoding." onmousemove="i18n(this)">&Kcy;&ocy;&lcy;&icy;&chcy;&iecy;&scy;&tcy;&vcy;&ocy; &ncy;&iecy;&ocy;&tcy;&scy;&lcy;&iecy;&zhcy;&icy;&vcy;&acy;&iecy;&mcy;&ycy;&khcy; &zcy;&acy;&pcy;&icy;&scy;&iecy;&jcy;, &kcy;&ocy;&dcy;&icy;&rcy;&ocy;&vcy;&kcy;&acy; &pcy;&iecy;&rcy;&iecy;&mcy;&iecy;&ncy;&ncy;&ocy;&jcy; &shcy;&icy;&rcy;&icy;&ncy;&ycy;.</span></p> </li> <li> <p><span data-i18n="1855e920614eee2959116c28fbc2c9190db4d4d02ed693811eb126a514825a22/d4" data-source="The number of sub-directory blocks, variable width encoding." onmousemove="i18n(this)">&Kcy;&ocy;&lcy;&icy;&chcy;&iecy;&scy;&tcy;&vcy;&ocy; &bcy;&lcy;&ocy;&kcy;&ocy;&vcy; &pcy;&ocy;&dcy;&kcy;&acy;&tcy;&acy;&lcy;&ocy;&gcy;&ocy;&vcy;, &kcy;&ocy;&dcy;&icy;&rcy;&ocy;&vcy;&acy;&ncy;&icy;&iecy; &pcy;&iecy;&rcy;&iecy;&mcy;&iecy;&ncy;&ncy;&ocy;&jcy; &shcy;&icy;&rcy;&icy;&ncy;&ycy;.</span></p> </li> <li> <p><span data-i18n="23a9fb03447bf89f719775ce987040238772b8ca9a4821839461fdd20a343ce7/66" data-source="The directory name terminated by NUL." onmousemove="i18n(this)">&Icy;&mcy;&yacy; &kcy;&acy;&tcy;&acy;&lcy;&ocy;&gcy;&acy;, &ocy;&kcy;&acy;&ncy;&chcy;&icy;&vcy;&acy;&yucy;&shchcy;&iecy;&iecy;&scy;&yacy; NUL.</span></p> </li> <li> <p><span data-i18n="1b1d588fd943d3ced577e7a69c76dbad33fdcd913d6cd4cee94bb8a0cc0764da/c9" data-source="A number of untracked file/dir names terminated by NUL." onmousemove="i18n(this)">&Kcy;&ocy;&lcy;&icy;&chcy;&iecy;&scy;&tcy;&vcy;&ocy; &ncy;&iecy;&ocy;&tcy;&scy;&lcy;&iecy;&zhcy;&icy;&vcy;&acy;&iecy;&mcy;&ycy;&khcy; &icy;&mcy;&iecy;&ncy; &fcy;&acy;&jcy;&lcy;&ocy;&vcy;/&kcy;&acy;&tcy;&acy;&lcy;&ocy;&gcy;&ocy;&vcy;, &ocy;&kcy;&acy;&ncy;&chcy;&icy;&vcy;&acy;&yucy;&shchcy;&icy;&khcy;&scy;&yacy; NUL.</span></p> </li> </ul> </div> <p><span data-i18n="de88b2b90c7c3dba14aea7c989e18e954adf67903071a7421871f914a06bdbc0/c4" data-source="The remaining data of each directory block is grouped by type:" onmousemove="i18n(this)">&Ocy;&scy;&tcy;&acy;&lcy;&softcy;&ncy;&ycy;&iecy; &dcy;&acy;&ncy;&ncy;&ycy;&iecy; &kcy;&acy;&zhcy;&dcy;&ocy;&gcy;&ocy; &bcy;&lcy;&ocy;&kcy;&acy; &kcy;&acy;&tcy;&acy;&lcy;&ocy;&gcy;&acy; &scy;&gcy;&rcy;&ucy;&pcy;&pcy;&icy;&rcy;&ocy;&vcy;&acy;&ncy;&ycy; &pcy;&ocy; &tcy;&icy;&pcy;&ucy;:</span></p> <div> <ul> <li> <p><span data-i18n="0d7f58748dacc8316f11b28ba1549d096b085cd852c18ce4196a7b48b9ee0604/09" data-source="An ewah bitmap, the n-th bit marks whether the n-th directory has valid untracked cache entries." onmousemove="i18n(this)">&Bcy;&icy;&tcy;&ocy;&vcy;&acy;&yacy; &kcy;&acy;&rcy;&tcy;&acy; ewah, n-&jcy; &bcy;&icy;&tcy; &ucy;&kcy;&acy;&zcy;&ycy;&vcy;&acy;&iecy;&tcy;, &iecy;&scy;&tcy;&softcy; &lcy;&icy; &vcy; n-&mcy; &kcy;&acy;&tcy;&acy;&lcy;&ocy;&gcy;&iecy; &dcy;&iecy;&jcy;&scy;&tcy;&vcy;&icy;&tcy;&iecy;&lcy;&softcy;&ncy;&ycy;&iecy; &ncy;&iecy;&ocy;&tcy;&scy;&lcy;&iecy;&zhcy;&icy;&vcy;&acy;&iecy;&mcy;&ycy;&iecy; &zcy;&acy;&pcy;&icy;&scy;&icy; &kcy;&ecy;&shcy;&acy;.</span></p> </li> <li> <p><span data-i18n="b001fa172a2c437ca3c16d557236d4e7338ee55368ae4f9beb9d0ebd8837dd7f/b6" data-source="An ewah bitmap, the n-th bit records &amp;quot;check-only&amp;quot; bit of read_directory_recursive() for the n-th directory." onmousemove="i18n(this)">&Bcy;&icy;&tcy;&ocy;&vcy;&acy;&yacy; &kcy;&acy;&rcy;&tcy;&acy; ewah, n-&jcy; &bcy;&icy;&tcy; &zcy;&acy;&pcy;&icy;&scy;&ycy;&vcy;&acy;&iecy;&tcy; &bcy;&icy;&tcy;  &quot;check-only&quot;  &fcy;&ucy;&ncy;&kcy;&tscy;&icy;&icy; read_directory_recursive() &dcy;&lcy;&yacy; n-&gcy;&ocy; &kcy;&acy;&tcy;&acy;&lcy;&ocy;&gcy;&acy;.</span></p> </li> <li> <p><span data-i18n="63f4f5312a7047ef91ad33140ffa69462e30c891e797278f1a0eb1bc6780051e/bd" data-source="An ewah bitmap, the n-th bit indicates whether hash and stat data is valid for the n-th directory and exists in the next data." onmousemove="i18n(this)">&Bcy;&icy;&tcy;&ocy;&vcy;&acy;&yacy; &kcy;&acy;&rcy;&tcy;&acy; ewah, n-&jcy; &bcy;&icy;&tcy; &ucy;&kcy;&acy;&zcy;&ycy;&vcy;&acy;&iecy;&tcy;, &dcy;&iecy;&jcy;&scy;&tcy;&vcy;&icy;&tcy;&iecy;&lcy;&softcy;&ncy;&ycy; &lcy;&icy; &khcy;&iecy;&shcy;-&dcy;&acy;&ncy;&ncy;&ycy;&iecy; &icy; &scy;&tcy;&acy;&tcy;&icy;&scy;&tcy;&icy;&chcy;&iecy;&scy;&kcy;&icy;&iecy; &dcy;&acy;&ncy;&ncy;&ycy;&iecy; &dcy;&lcy;&yacy; n-&gcy;&ocy; &kcy;&acy;&tcy;&acy;&lcy;&ocy;&gcy;&acy; &icy; &scy;&ucy;&shchcy;&iecy;&scy;&tcy;&vcy;&ucy;&yucy;&tcy; &lcy;&icy; &ocy;&ncy;&icy; &vcy; &scy;&lcy;&iecy;&dcy;&ucy;&yucy;&shchcy;&icy;&khcy; &dcy;&acy;&ncy;&ncy;&ycy;&khcy;.</span></p> </li> <li> <p><span data-i18n="b680022a9d45ddbf27b472947470f49199c9dd6d4794834ad98a760dd70ee25e/55" data-source="An array of stat data. The n-th data corresponds with the n-th &amp;quot;one&amp;quot; bit in the previous ewah bitmap." onmousemove="i18n(this)">&Mcy;&acy;&scy;&scy;&icy;&vcy; &scy;&tcy;&acy;&tcy;&icy;&scy;&tcy;&icy;&chcy;&iecy;&scy;&kcy;&icy;&khcy; &dcy;&acy;&ncy;&ncy;&ycy;&khcy;. n-&ncy;&ycy;&iecy; &dcy;&acy;&ncy;&ncy;&ycy;&iecy; &scy;&ocy;&ocy;&tcy;&vcy;&iecy;&tcy;&scy;&tcy;&vcy;&ucy;&yucy;&tcy; n-&mcy;&ucy; &bcy;&icy;&tcy;&ucy;  &quot;one&quot;  &vcy; &pcy;&rcy;&iecy;&dcy;&ycy;&dcy;&ucy;&shchcy;&iecy;&mcy; &rcy;&acy;&scy;&tcy;&rcy;&ocy;&vcy;&ocy;&mcy; &icy;&zcy;&ocy;&bcy;&rcy;&acy;&zhcy;&iecy;&ncy;&icy;&icy; ewah.</span></p> </li> <li> <p><span data-i18n="6c5b5013c52b588379f35397216dce11b3a0fe0e9142ff57e68761cf839cd6eb/5d" data-source="An array of hashes. The n-th hash corresponds with the n-th &amp;quot;one&amp;quot; bit in the previous ewah bitmap." onmousemove="i18n(this)">&Mcy;&acy;&scy;&scy;&icy;&vcy; &khcy;&iecy;&shcy;&iecy;&jcy;. n-&jcy; &khcy;&iecy;&shcy; &scy;&ocy;&ocy;&tcy;&vcy;&iecy;&tcy;&scy;&tcy;&vcy;&ucy;&iecy;&tcy; n-&mcy;&ucy; &bcy;&icy;&tcy;&ucy;  &quot;one&quot;  &vcy; &pcy;&rcy;&iecy;&dcy;&ycy;&dcy;&ucy;&shchcy;&iecy;&mcy; &rcy;&acy;&scy;&tcy;&rcy;&ocy;&vcy;&ocy;&mcy; &icy;&zcy;&ocy;&bcy;&rcy;&acy;&zhcy;&iecy;&ncy;&icy;&icy; ewah.</span></p> </li> <li> <p><span data-i18n="da2217f606f68f640bd8581658e75f824f11a44e7b26776e25edbac4d2a32dbc/bc" data-source="One NUL." onmousemove="i18n(this)">One NUL.</span></p> </li> </ul> </div> </div> <h2 class="text-body-emphasis"  id="_file_system_monitor_cache"><span data-i18n="cafeec4271ce48ec2c07cf206933d23c8fa46ad2922a3267789312b941815cf7/cf" data-source="File system monitor cache" onmousemove="i18n(this)">&Kcy;&ecy;&shcy; &mcy;&ocy;&ncy;&icy;&tcy;&ocy;&rcy;&acy; &fcy;&acy;&jcy;&lcy;&ocy;&vcy;&ocy;&jcy; &scy;&icy;&scy;&tcy;&iecy;&mcy;&ycy;</span></h2> <div> <div> <div> <pre class="hljs language-kotlin">The file system monitor cache tracks files <span class="hljs-keyword">for</span> which the core.fsmonitor
hook has told us about changes.  The signature <span class="hljs-keyword">for</span> <span class="hljs-keyword">this</span> extension <span class="hljs-keyword">is</span>
{ <span class="hljs-string">&apos;F&apos;</span>, <span class="hljs-string">&apos;S&apos;</span>, <span class="hljs-string">&apos;M&apos;</span>, <span class="hljs-string">&apos;N&apos;</span> }.</pre> </div> </div> <div> <div> <pre class="hljs language-csharp">The extension starts <span class="hljs-keyword">with</span></pre> </div> </div> <div> <ul> <li> <p><span data-i18n="b77cde7a250d44b5fd2bc86af4de9ff6e29b11edb9d2dafcb8a30b5f2330be70/54" data-source="32-bit version number: the current supported versions are 1 and 2." onmousemove="i18n(this)">32-&bcy;&icy;&tcy;&ncy;&ycy;&jcy; &ncy;&ocy;&mcy;&iecy;&rcy; &vcy;&iecy;&rcy;&scy;&icy;&icy;: &tcy;&iecy;&kcy;&ucy;&shchcy;&icy;&iecy; &pcy;&ocy;&dcy;&dcy;&iecy;&rcy;&zhcy;&icy;&vcy;&acy;&iecy;&mcy;&ycy;&iecy; &vcy;&iecy;&rcy;&scy;&icy;&icy; &mdash; 1 &icy; 2.</span></p> </li> <li> <p><span data-i18n="1e7b851f41016b1a0e435d7540425b9701baab61e536e48c9f2ef9ce64112e26/02" data-source="(Version 1) 64-bit time: the extension data reflects all changes through the given time which is stored as the nanoseconds elapsed since midnight, January 1, 1970." onmousemove="i18n(this)">(&Vcy;&iecy;&rcy;&scy;&icy;&yacy; 1) 64-&bcy;&icy;&tcy;&ncy;&ocy;&iecy; &vcy;&rcy;&iecy;&mcy;&yacy;: &dcy;&acy;&ncy;&ncy;&ycy;&iecy; &rcy;&acy;&scy;&shcy;&icy;&rcy;&iecy;&ncy;&icy;&yacy; &ocy;&tcy;&rcy;&acy;&zhcy;&acy;&yucy;&tcy; &vcy;&scy;&iecy; &icy;&zcy;&mcy;&iecy;&ncy;&iecy;&ncy;&icy;&yacy; &zcy;&acy; &zcy;&acy;&dcy;&acy;&ncy;&ncy;&ocy;&iecy; &vcy;&rcy;&iecy;&mcy;&yacy;, &kcy;&ocy;&tcy;&ocy;&rcy;&ocy;&iecy; &khcy;&rcy;&acy;&ncy;&icy;&tcy;&scy;&yacy; &vcy; &ncy;&acy;&ncy;&ocy;&scy;&iecy;&kcy;&ucy;&ncy;&dcy;&acy;&khcy;, &pcy;&rcy;&ocy;&shcy;&iecy;&dcy;&shcy;&icy;&khcy; &scy; &pcy;&ocy;&lcy;&ucy;&ncy;&ocy;&chcy;&icy; 1 &yacy;&ncy;&vcy;&acy;&rcy;&yacy; 1970 &gcy;&ocy;&dcy;&acy;.</span></p> </li> <li> <p><span data-i18n="b5c198bac2a09095ee49dd43d2be84246325cdd4db3fe48a32bfe3ffa1b9da4d/7f" data-source="(Version 2) A null terminated string: an opaque token defined by the file system monitor application. The extension data reflects all changes relative to that token." onmousemove="i18n(this)">(&Vcy;&iecy;&rcy;&scy;&icy;&yacy; 2) &Zcy;&acy;&vcy;&iecy;&rcy;&shcy;&acy;&yucy;&shchcy;&acy;&yacy;&scy;&yacy; &scy;&tcy;&rcy;&ocy;&kcy;&acy;  null : &ncy;&iecy;&pcy;&rcy;&ocy;&zcy;&rcy;&acy;&chcy;&ncy;&ycy;&jcy; &tcy;&ocy;&kcy;&iecy;&ncy;, &ocy;&pcy;&rcy;&iecy;&dcy;&iecy;&lcy;&iecy;&ncy;&ncy;&ycy;&jcy; &pcy;&rcy;&icy;&lcy;&ocy;&zhcy;&iecy;&ncy;&icy;&iecy;&mcy; &mcy;&ocy;&ncy;&icy;&tcy;&ocy;&rcy;&icy;&ncy;&gcy;&acy; &fcy;&acy;&jcy;&lcy;&ocy;&vcy;&ocy;&jcy; &scy;&icy;&scy;&tcy;&iecy;&mcy;&ycy;. &Dcy;&acy;&ncy;&ncy;&ycy;&iecy; &rcy;&acy;&scy;&shcy;&icy;&rcy;&iecy;&ncy;&icy;&yacy; &ocy;&tcy;&rcy;&acy;&zhcy;&acy;&yucy;&tcy; &vcy;&scy;&iecy; &icy;&zcy;&mcy;&iecy;&ncy;&iecy;&ncy;&icy;&yacy; &ocy;&tcy;&ncy;&ocy;&scy;&icy;&tcy;&iecy;&lcy;&softcy;&ncy;&ocy; &ecy;&tcy;&ocy;&gcy;&ocy; &tcy;&ocy;&kcy;&iecy;&ncy;&acy;.</span></p> </li> <li> <p><span data-i18n="4d5f5fd822cf5e209469de2dbd22765a904899c43382ac772658f34768edc150/8c" data-source="32-bit bitmap size: the size of the CE_FSMONITOR_VALID bitmap." onmousemove="i18n(this)">&Rcy;&acy;&zcy;&mcy;&iecy;&rcy; 32-&bcy;&icy;&tcy;&ncy;&ocy;&gcy;&ocy; &rcy;&acy;&scy;&tcy;&rcy;&ocy;&vcy;&ocy;&gcy;&ocy; &icy;&zcy;&ocy;&bcy;&rcy;&acy;&zhcy;&iecy;&ncy;&icy;&yacy;: &rcy;&acy;&zcy;&mcy;&iecy;&rcy; &rcy;&acy;&scy;&tcy;&rcy;&ocy;&vcy;&ocy;&gcy;&ocy; &icy;&zcy;&ocy;&bcy;&rcy;&acy;&zhcy;&iecy;&ncy;&icy;&yacy; CE_FSMONITOR_VALID.</span></p> </li> <li> <p><span data-i18n="42bd09da4210f702a58693501bab2716cf069d7a5358e52c75546d03f0b4f8c9/06" data-source="An ewah bitmap, the n-th bit indicates whether the n-th index entry is not CE_FSMONITOR_VALID." onmousemove="i18n(this)">&Bcy;&icy;&tcy;&ocy;&vcy;&acy;&yacy; &kcy;&acy;&rcy;&tcy;&acy; ewah, n-&jcy; &bcy;&icy;&tcy; &ucy;&kcy;&acy;&zcy;&ycy;&vcy;&acy;&iecy;&tcy;, &ncy;&iecy; &yacy;&vcy;&lcy;&yacy;&iecy;&tcy;&scy;&yacy; &lcy;&icy; n-&yacy; &zcy;&acy;&pcy;&icy;&scy;&softcy; &icy;&ncy;&dcy;&iecy;&kcy;&scy;&acy; CE_FSMONITOR_VALID.</span></p> </li> </ul> </div> </div> <h2 class="text-body-emphasis"  id="_end_of_index_entry"><span data-i18n="eb253fa73b82fb84bbec02a33201711112ce42e2d244127a5244866d0baace82/1b" data-source="End of index entry" onmousemove="i18n(this)">&Kcy;&ocy;&ncy;&iecy;&tscy; &zcy;&acy;&pcy;&icy;&scy;&icy; &icy;&ncy;&dcy;&iecy;&kcy;&scy;&acy;</span></h2> <div> <div> <div> <pre class="hljs language-vbnet">The <span class="hljs-keyword">End</span> <span class="hljs-keyword">of</span> Index Entry (EOIE) <span class="hljs-built_in">is</span> used <span class="hljs-keyword">to</span> locate the <span class="hljs-keyword">end</span> <span class="hljs-keyword">of</span> the variable
length index entries <span class="hljs-built_in">and</span> the beginning <span class="hljs-keyword">of</span> the extensions. Code can <span class="hljs-keyword">take</span>
advantage <span class="hljs-keyword">of</span> this <span class="hljs-keyword">to</span> quickly locate the index extensions without having
<span class="hljs-keyword">to</span> parse through all <span class="hljs-keyword">of</span> the index entries.</pre> </div> </div> <div> <div> <pre class="hljs language-kotlin">Because it must be able to be loaded before the variable length cache
entries and other index extensions, <span class="hljs-keyword">this</span> extension must be written last.
The signature <span class="hljs-keyword">for</span> <span class="hljs-keyword">this</span> extension <span class="hljs-keyword">is</span> { <span class="hljs-string">&apos;E&apos;</span>, <span class="hljs-string">&apos;O&apos;</span>, <span class="hljs-string">&apos;I&apos;</span>, <span class="hljs-string">&apos;E&apos;</span> }.</pre> </div> </div> <div> <div> <pre class="hljs language-swift"><span class="hljs-type">The</span> <span class="hljs-keyword">extension</span> <span class="hljs-title class_">consists</span> <span class="hljs-title class_">of</span>:</pre> </div> </div> <div> <ul> <li> <p><span data-i18n="3942461ecdaaf0fef7930225b4d9891f681bfa0ef7f4b95019053f12c3450a99/0c" data-source="32-bit offset to the end of the index entries" onmousemove="i18n(this)">32-&bcy;&icy;&tcy;&ncy;&ocy;&iecy; &scy;&mcy;&iecy;&shchcy;&iecy;&ncy;&icy;&iecy; &dcy;&ocy; &kcy;&ocy;&ncy;&tscy;&acy; &zcy;&acy;&pcy;&icy;&scy;&iecy;&jcy; &icy;&ncy;&dcy;&iecy;&kcy;&scy;&acy;</span></p> </li> <li> <p><span data-i18n="f96a1188f8a86a84365da218fee18c4f3a49cf764e3680c40bf785f080d5be97/88" data-source="Hash over the extension types and their sizes (but not their contents). E.g. if we have &amp;quot;TREE&amp;quot; extension that is N-bytes long, &amp;quot;REUC&amp;quot; extension that is M-bytes long, followed by &amp;quot;EOIE&amp;quot;, then the hash would be:" onmousemove="i18n(this)">&KHcy;&ecy;&shcy;&icy;&rcy;&ocy;&vcy;&acy;&ncy;&icy;&iecy; &tcy;&icy;&pcy;&ocy;&vcy; &rcy;&acy;&scy;&shcy;&icy;&rcy;&iecy;&ncy;&icy;&jcy; &icy; &icy;&khcy; &rcy;&acy;&zcy;&mcy;&iecy;&rcy;&ocy;&vcy; (&ncy;&ocy; &ncy;&iecy; &icy;&khcy; &scy;&ocy;&dcy;&iecy;&rcy;&zhcy;&icy;&mcy;&ocy;&gcy;&ocy;). &Ncy;&acy;&pcy;&rcy;&icy;&mcy;&iecy;&rcy;, &iecy;&scy;&lcy;&icy; &ucy; &ncy;&acy;&scy; &iecy;&scy;&tcy;&softcy; &rcy;&acy;&scy;&shcy;&icy;&rcy;&iecy;&ncy;&icy;&iecy;  &quot;TREE&quot;  &dcy;&lcy;&icy;&ncy;&ocy;&jcy; N &bcy;&acy;&jcy;&tcy;, &rcy;&acy;&scy;&shcy;&icy;&rcy;&iecy;&ncy;&icy;&iecy;  &quot;REUC&quot;  &dcy;&lcy;&icy;&ncy;&ocy;&jcy; M &bcy;&acy;&jcy;&tcy;, &zcy;&acy; &kcy;&ocy;&tcy;&ocy;&rcy;&ycy;&mcy; &scy;&lcy;&iecy;&dcy;&ucy;&iecy;&tcy;  &quot;EOIE&quot; , &tcy;&ocy;&gcy;&dcy;&acy; &khcy;&iecy;&shcy; &bcy;&ucy;&dcy;&iecy;&tcy; &tcy;&acy;&kcy;&icy;&mcy;:</span></p> <div> <div> <pre class="hljs language-php"><span class="hljs-title function_ invoke__">Hash</span>(<span class="hljs-string">&quot;TREE&quot;</span> + &lt;<span class="hljs-keyword">binary</span> representation of N&gt; +
        <span class="hljs-string">&quot;REUC&quot;</span> + &lt;<span class="hljs-keyword">binary</span> representation of M&gt;)</pre> </div> </div> </li> </ul> </div> </div> <h2 class="text-body-emphasis"  id="_index_entry_offset_table"><span data-i18n="d50d006593aeb02ddeceeff5f65697afdc97e000a4c5e6095ce9ceb071426d5b/d7" data-source="Index entry offset table" onmousemove="i18n(this)">&Tcy;&acy;&bcy;&lcy;&icy;&tscy;&acy; &scy;&mcy;&iecy;&shchcy;&iecy;&ncy;&icy;&yacy; &icy;&ncy;&dcy;&iecy;&kcy;&scy;&ncy;&ocy;&jcy; &zcy;&acy;&pcy;&icy;&scy;&icy;</span></h2> <div> <div> <div> <pre class="hljs language-csharp"><span class="hljs-function">The Index Entry Offset <span class="hljs-title">Table</span> (<span class="hljs-params">IEOT</span>) <span class="hljs-keyword">is</span> used to help address the CPU
cost of loading the index <span class="hljs-keyword">by</span> enabling multi-threading the process of
converting cache entries <span class="hljs-keyword">from</span> the <span class="hljs-keyword">on</span>-disk format to the <span class="hljs-keyword">in</span>-memory format.
The signature <span class="hljs-keyword">for</span> <span class="hljs-keyword">this</span> extension <span class="hljs-keyword">is</span></span> { <span class="hljs-string">&apos;I&apos;</span>, <span class="hljs-string">&apos;E&apos;</span>, <span class="hljs-string">&apos;O&apos;</span>, <span class="hljs-string">&apos;T&apos;</span> }.</pre> </div> </div> <div> <div> <pre class="hljs language-swift"><span class="hljs-type">The</span> <span class="hljs-keyword">extension</span> <span class="hljs-title class_">consists</span> <span class="hljs-title class_">of</span>:</pre> </div> </div> <div> <ul> <li> <p><span data-i18n="75ff32b6d2a55fbc6cbf9bd0bb6970cd922fa4625aef724fbfe372972078b6ed/79" data-source="32-bit version (currently 1)" onmousemove="i18n(this)">32-&bcy;&icy;&tcy;&ncy;&acy;&yacy; &vcy;&iecy;&rcy;&scy;&icy;&yacy; (&ncy;&acy; &dcy;&acy;&ncy;&ncy;&ycy;&jcy; &mcy;&ocy;&mcy;&iecy;&ncy;&tcy; 1)</span></p> </li> <li> <p><span data-i18n="27b624e890e871830c1b2140db32fa119d8422edfc68228b07cd18bc2ae1af2d/da" data-source="A number of index offset entries each consisting of:" onmousemove="i18n(this)">&Ncy;&iecy;&scy;&kcy;&ocy;&lcy;&softcy;&kcy;&ocy; &zcy;&acy;&pcy;&icy;&scy;&iecy;&jcy; &scy;&mcy;&iecy;&shchcy;&iecy;&ncy;&icy;&yacy; &icy;&ncy;&dcy;&iecy;&kcy;&scy;&acy;, &kcy;&acy;&zhcy;&dcy;&acy;&yacy; &icy;&zcy; &kcy;&ocy;&tcy;&ocy;&rcy;&ycy;&khcy; &scy;&ocy;&scy;&tcy;&ocy;&icy;&tcy; &icy;&zcy;:</span></p> </li> <li> <p><span data-i18n="3c05766ca22902d73b1d451566d52a07592260e76716eeb1cc423119c25778d1/77" data-source="32-bit offset from the beginning of the file to the first cache entry in this block of entries." onmousemove="i18n(this)">32-&bcy;&icy;&tcy;&ncy;&ocy;&iecy; &scy;&mcy;&iecy;&shchcy;&iecy;&ncy;&icy;&iecy; &ocy;&tcy; &ncy;&acy;&chcy;&acy;&lcy;&acy; &fcy;&acy;&jcy;&lcy;&acy; &dcy;&ocy; &pcy;&iecy;&rcy;&vcy;&ocy;&jcy; &zcy;&acy;&pcy;&icy;&scy;&icy; &kcy;&ecy;&shcy;&acy; &vcy; &ecy;&tcy;&ocy;&mcy; &bcy;&lcy;&ocy;&kcy;&iecy; &zcy;&acy;&pcy;&icy;&scy;&iecy;&jcy;.</span></p> </li> <li> <p><span data-i18n="87c02467bc6c650471f807647b01a526d7c667ca2eebdf7cc4ff2f3eae37014f/4f" data-source="32-bit count of cache entries in this block" onmousemove="i18n(this)">32-&bcy;&icy;&tcy;&ncy;&ocy;&iecy; &kcy;&ocy;&lcy;&icy;&chcy;&iecy;&scy;&tcy;&vcy;&ocy; &zcy;&acy;&pcy;&icy;&scy;&iecy;&jcy; &kcy;&ecy;&shcy;&acy; &vcy; &ecy;&tcy;&ocy;&mcy; &bcy;&lcy;&ocy;&kcy;&iecy;</span></p> </li> </ul> </div> </div> <h2 class="text-body-emphasis"  id="_sparse_directory_entries"><span data-i18n="db902b2b57820ceb985fbf8a9188102ca87fbf4e2b178f55e7fe9034ad88eb8d/18" data-source="Sparse directory entries" onmousemove="i18n(this)">&Rcy;&iecy;&dcy;&kcy;&icy;&iecy; &zcy;&acy;&pcy;&icy;&scy;&icy; &kcy;&acy;&tcy;&acy;&lcy;&ocy;&gcy;&acy;</span></h2> <div> <div> <div> <pre class="hljs language-csharp">When <span class="hljs-keyword">using</span> sparse-checkout <span class="hljs-keyword">in</span> cone mode, some entire directories within
the index can be summarized <span class="hljs-keyword">by</span> pointing to a tree <span class="hljs-built_in">object</span> instead of the
entire expanded list of paths within that tree. An index containing such
entries <span class="hljs-keyword">is</span> a <span class="hljs-string">&quot;sparse index&quot;</span>. Index format versions <span class="hljs-number">4</span> <span class="hljs-keyword">and</span> less were <span class="hljs-keyword">not</span>
implemented <span class="hljs-keyword">with</span> such entries <span class="hljs-keyword">in</span> mind. Thus, <span class="hljs-keyword">for</span> these versions, an
index containing sparse directory entries will include <span class="hljs-keyword">this</span> extension
<span class="hljs-keyword">with</span> signature { <span class="hljs-string">&apos;s&apos;</span>, <span class="hljs-string">&apos;d&apos;</span>, <span class="hljs-string">&apos;i&apos;</span>, <span class="hljs-string">&apos;r&apos;</span> }. Like the split-index extension,
tools should avoid interacting <span class="hljs-keyword">with</span> a sparse index unless they understand
<span class="hljs-keyword">this</span> extension.</pre> </div> </div> </div><address>
<p>
    &copy; 2012&ndash;2024 Scott Chacon and others<br/>Licensed under the MIT License.<br/>
<a href="https://git-scm.com/docs/gitformat-index">https://git-scm.com/docs/gitformat-index</a>
</p>
</address>                </article>
            </main>

            <br>
            <br>
            <hr>

                            <ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-6424571640879890"
     data-ad-slot="3954319254"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>            
        </div>

        <!-- -->

        <div class="col-md-3">
            <br>
            <form action="-index-.html">
                <div class="input-group">
                    <input class="form-control" type="search" name="q" placeholder="Search for Git" required>
                    <button class="btn btn-primary" type="submit">
                        <i class="bi bi-search"></i>
                    </button>
                </div>
            </form>
            <br>

                            <div class="list-group list-group-flush">
                                            <a class="list-group-item list-group-item-action text-primary-emphasis px-2 text-truncate" href="gitformat-pack.html">
                            gitformat pack                        </a>
                                            <a class="list-group-item list-group-item-action text-primary-emphasis px-2 text-truncate" href="gitformat-signature.html">
                            gitformat signature                        </a>
                                            <a class="list-group-item list-group-item-action text-primary-emphasis px-2 text-truncate" href="gitglossary.html">
                            gitglossary                        </a>
                                            <a class="list-group-item list-group-item-action text-primary-emphasis px-2 text-truncate" href="githooks.html">
                            githooks                        </a>
                                            <a class="list-group-item list-group-item-action text-primary-emphasis px-2 text-truncate" href="gitignore.html">
                            gitignore                        </a>
                                            <a class="list-group-item list-group-item-action text-primary-emphasis px-2 text-truncate" href="gitk.html">
                            gitk                        </a>
                                            <a class="list-group-item list-group-item-action text-primary-emphasis px-2 text-truncate" href="gitmailmap.html">
                            gitmailmap                        </a>
                                    </div>
            
            <br>
            <div class="my-3">
                   <ins class="adsbygoogle"
        style="display:block; text-align:center;"
        data-ad-layout="in-article"
        data-ad-format="fluid"
        data-ad-client="ca-pub-6424571640879890"
        data-ad-slot="3777011170"></ins>
<script>
    (adsbygoogle = window.adsbygoogle || []).push({});
</script>            </div>
            <br>

            
            
        </div>
    </div>
</div>    <!--/sse-->

    <footer>
        <br>
        <div class="container">
            <div class="row">
                <div class="col">
                    <hr>
                    <div class="row">
                        <div class="col-md-10">
                            <ul class="nav">
                                <li class="nav-item">
                                    <a class="nav-link ps-0" href="https://runebook.dev/">Help us Improve Translation</a>
                                </li>
                                                            </ul>
                        </div>
                        <div class="col-md-2 text-end">
                            <a href="gitformat-index.html#" class="fs-5" aria-label="Top">
                                <i class="bi bi-arrow-up-square-fill"></i>
                            </a>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <br>
    </footer>
    <script src="../../../runebook.js"></script>
</body>

</html>